package com.zxl.jdk8test;

import java.util.Collection;
import java.util.Optional;

/**
 * 标识函数式接口（注解为可选的）
 * 必须有且仅有一个抽象方法（abstract 关键字可省略）。
 * 可以包含默认方法（default）、静态方法（static）和 Object 类的公共方法（如 equals()）。
 * 使用 @FunctionalInterface 注解是可选的，但推荐使用以明确意图并让编译器检查接口是否符合函数式接口的定义。
 * 如果使用了该注解却不满足函数式接口的定义，编译器会报错。
 * @author zxl
 * @date 2023/12/12 14:25
 */
@FunctionalInterface
public interface InterfaceTest {
    
    void test(String abc);
    
    default int getLength(Collection<?> a){
        if (Optional.ofNullable(a).isPresent()) {
            return a.size();
        }else
            return 0;
    }
}
